Field of the Invention
Embodiments of the present invention generally relate to reduction of slice header parsing overhead in video coding.
Description of the Related Art
The Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T WP3/16 and ISO/IEC JTC 1/SC 29/WG 11 is currently developing the next-generation video coding standard referred to as High Efficiency Video Coding (HEVC). Similar to previous video coding standards such as H.264/AVC, HEVC is based on a hybrid coding scheme using block-based prediction and transform coding. First, the input signal is split into rectangular blocks that are predicted from the previously decoded data by either motion compensated (inter) prediction or intra prediction. The resulting prediction error is coded by applying block transforms based on an integer approximation of the discrete cosine transform, which is followed by quantization and coding of the transform coefficients.
Similar to prior video coding standards, a picture may be subdivided into one or more independently decodable slices. A slice header is transmitted for each slice. This header contains high-level parameters for decoding the data in the associated slice. Such parameters may include, for example, a picture order counter, reference picture parameter sets, SAO (sample adaptive offset) control parameters, reference picture list parameters and modification parameters, de-blocking filter control parameters, a weighted prediction table, in-loop filter slice on/off control flag, and sub-stream entries, etc.
In typical video decoder designs, slice header parsing is implemented in software for flexibility and error resiliency reasons and can be a processing bottleneck for large slice headers. Tests have shown that even with a powerful processor, the worst case slice parsing overhead may be around 30 MHz for 1080p@30. For a 1080p@120 decoder at 300 MHz, the slice header parsing would account for about 40% overall cycle count for the decoder, which is way too high when considering that the typical margin for high-level syntax paring is only around 10% of overall decoder cycle budget. Further, even if the slice header decoding is implemented in hardware, large slice header sizes can still create pipeline bubbles that slow down the decoder significantly. Therefore, it is desirable to reduce the overhead of slice header parsing.